home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / dalla rivista / netconnect3 / webvision / install webvision < prev    next >
Text File  |  1999-09-26  |  8KB  |  364 lines

  1. ; $VER: Install WebVision 2.2 (26.9.99)
  2. ;
  3. ; WebVision webcam viewer, by Troels Walsted Hansen <troels@thule.no>
  4. ; Copyright Ultima Thule Software © 1999, All Rights Reserved.
  5. ;
  6. ; Installer script for WebVision.
  7.  
  8. (set #exitmsg "\n\nThank you for installing WebVision.\n\nRemember to register if you use it for more than 30 days.")
  9.  
  10. ; Welcome screen
  11.  
  12. (welcome "\nThis installer script will install WebVision.\nThe ultimate webcam viewer")
  13.  
  14. ; Check the environment
  15.  
  16. (if (< (/ @installer-version 65536) 43)
  17.     (abort "The WebVision installation script needs Installer\n"
  18.     "version 43 or higher. It is available from Aminet.")
  19. )
  20.  
  21. (if (< (/ (getversion) 65536) 39)
  22.     (abort "WebVision needs AmigaOS 3.0 or higher.\n")
  23. )
  24.  
  25. (if
  26.     (not (= (exists "MUI:" (noreq)) 2))
  27.     (abort "WebVision needs MUI 3.8 or higher.\n")
  28. )
  29.  
  30. ; Some smartass previous installation detection
  31.  
  32. (procedure p_tackoff string1 string2
  33.     (set #p_tackoff_result string1)
  34.  
  35.     (if
  36.         (>= (strlen string1) (strlen string2))
  37.  
  38.         (
  39.             (set #p_tackoff_diff (- (strlen string1) (strlen string2)))
  40.  
  41.             (if
  42.                 (= string2 (substr string1 #p_tackoff_diff (strlen string2)))
  43.  
  44.                 (set #p_tackoff_result (substr string1 0 #p_tackoff_diff))
  45.             )
  46.         )
  47.     )
  48.  
  49.     (#p_tackoff_result)
  50. )
  51.  
  52. (set #oldpath (getenv "WebVision_LASTUSEDDIR"))
  53.  
  54. (if
  55.     #oldpath
  56.  
  57.     (set @default-dest (p_tackoff #oldpath "WebVision"))
  58.  
  59.     (
  60.         (set #oldpath (getenv "WebTV_LASTUSEDDIR"))
  61.  
  62.         (if #oldpath
  63.             (set @default-dest (p_tackoff #oldpath "WebTV"))
  64.         )
  65.     )
  66. )
  67.  
  68. ; Ask for destination directory
  69.  
  70. (set #destdir
  71.     (askdir
  72.         (prompt "Select destination directory. A directory called \"WebVision\" will be created here.")
  73.         (help @askdir-help)
  74.         (default @default-dest)
  75.     )
  76. )
  77. (set @default-dest (tackon #destdir "WebVision"))
  78.  
  79. ; RobR detection
  80.  
  81. (if
  82.     (= (expandpath "") (expandpath @default-dest))
  83.     (abort "Please select a different directory than the one you're installing from.\n")
  84. )
  85.  
  86. ; Create installation directory and copy icon for it
  87.  
  88. (makedir @default-dest)
  89.  
  90. (copyfiles
  91.     (source "/WebVision.info")
  92.     (dest #destdir)
  93. )
  94.  
  95. ; Copy files
  96.  
  97. (copyfiles
  98.     (prompt "The following files will be installed:")
  99.     (help @copyfiles-help)
  100.     (source "")
  101.     (choices "WebVision" "WebVision.guide" "Registration" "Register" "DockBrushes")
  102.     (dest @default-dest)
  103.     (confirm)
  104.     (infos)
  105. )
  106.  
  107. (copylib
  108.     (prompt "Installing the Popplaceholder.mcc MUI class")
  109.     (help @copyfiles-help)
  110.     (source "Libs/MUI/Popplaceholder.mcc")
  111.     (dest "MUI:Libs/MUI")
  112. )
  113.  
  114. ; Install OpenURL
  115.  
  116. (if 
  117.     (askbool
  118.         (prompt "Would you like to install the OpenURL package version 3.0?\n\nOpenURL is a shared library that allows easy sending of URLs to webbrowsers. The library is used extensively in WebVision, and is also supported by such programs as AmIRC and YAM.\n\nWithout it, you can only send URLs to the clipboard.\n\n")
  119.         (help "It is quite harmless to install this. You will get four new files, a library called openurl.library, a handler called OpenURL-Handler, a prefs program and a MUI class called Popport.mcc which is used by the prefs program.")
  120.         (choices "Install" "Don't install")
  121.         (default 1)
  122.     )
  123.  
  124.     (
  125.         (copylib
  126.             (prompt "Installing the OpenURL library")
  127.             (help @copyfiles-help)
  128.             (source "OpenURL/openurl.library")
  129.             (dest "Libs:")
  130.         )
  131.  
  132.         (copylib
  133.             (prompt "Installing the OpenURL handler")
  134.             (help @copyfiles-help)
  135.             (source "OpenURL/OpenURL-Handler")
  136.             (dest "L:")
  137.         )
  138.  
  139.         (copyfiles
  140.             (prompt "Installing the OpenURL preference program")
  141.             (help @copyfiles-help)
  142.             (source "OpenURL/OpenURL")
  143.             (dest "SYS:Prefs")
  144.             (infos)
  145.             (noposition)
  146.         )
  147.         
  148.         (copylib
  149.             (prompt "Installing the Popport.mcc MUI class")
  150.             (help @copyfiles-help)
  151.             (source "OpenURL/Popport.mcc")
  152.             (dest "MUI:Libs/MUI")
  153.         )
  154.  
  155.         (if
  156.             (askbool
  157.                 (prompt "You should run the OpenURL preferences program now to set your browser path(s). Would you like me to launch it?\n\nNote: You should quit all OpenURL using apps now, to allow the old version of the library to be flushed from memory.")
  158.                 (help "")
  159.                 (default 1)
  160.             )
  161.  
  162.             (
  163.                 (run "Avail FLUSH >NIL:")
  164.                 (run "SYS:Prefs/OpenURL")
  165.             )
  166.         )
  167.     )
  168. )
  169.  
  170. ; Check for prior installations
  171.  
  172. (set #webtvpath (getenv "WebTV_LASTUSEDDIR"))
  173.  
  174. (if #webtvpath
  175.     (set #webtvinstalled
  176.         (and
  177.             (= (exists (tackon #webtvpath "WebTV"))     1)
  178.             (= (exists (tackon #webtvpath "WebVision")) 0)
  179.         )
  180.     )
  181.  
  182.     (set #webtvinstalled 0)
  183. )
  184.  
  185. ; Copy old files over from old WebTV installation
  186.  
  187. (if
  188.     #webtvinstalled
  189.  
  190.     (set
  191.         #copyoldfiles
  192.         (askbool
  193.             (prompt "An installation of WebTV has been detected. Would you like to copy over the keyfile (if you have one), the site configuration file and the MUI configuration file from this installation?")
  194.             (help "The following operations are performed:\nCopy WebTV.key TO WebVision.key\nCopy WebTV.sites TO WebVision.sites\nCopy ENV:mui/WEBTV.1.prefs TO ENV:mui/WEBVISION.1.prefs\nCopy ENVARC:mui/WEBTV.1.prefs TO ENVARC:mui/WEBVISION.1.prefs")
  195.             (default 1)
  196.         )
  197.     )
  198.  
  199.     (set #copyoldfiles 0)
  200. )
  201.  
  202. (if
  203.     #copyoldfiles
  204.  
  205.     (
  206.         (copyfiles
  207.             (source (tackon #webtvpath "WebTV.sites"))
  208.             (dest @default-dest)
  209.             (newname "WebVision.sites")
  210.             (optional "nofail")
  211.         )
  212.  
  213.         (copyfiles
  214.             (source (tackon #webtvpath "WebTV.key"))
  215.             (dest @default-dest)
  216.             (newname "WebVision.key")
  217.             (optional "nofail")
  218.         )
  219.  
  220.         (copyfiles
  221.             (source "ENV:mui/WEBTV.1.prefs")
  222.             (dest "ENV:mui")
  223.             (newname "WEBVISION.1.prefs")
  224.             (optional "nofail")
  225.         )
  226.  
  227.         (copyfiles
  228.             (source "ENVARC:mui/WEBTV.1.prefs")
  229.             (dest "ENVARC:mui")
  230.             (newname "WEBVISION.1.prefs")
  231.             (optional "nofail")
  232.         )
  233.     )
  234. )
  235.  
  236. ; Optionally install script to make V work
  237.  
  238. (if
  239.     (askbool
  240.         (prompt "The Voyager webbrowser supports WebTV through sending URLs to it from the context menu of images.  To make this work with WebVision you will need a small script to send the URL on to WebVision.  Would you like to install this script?")
  241.         (help "A script called WebTV is installed in the WebVision directory and the WebTV_LASTUSEDDIR is set to point to the WebVision directory.")
  242.         (default 1)
  243.     )
  244.  
  245.     (
  246.         (copyfiles
  247.             (source "WebTV")
  248.             (dest @default-dest)
  249.         )
  250.  
  251.         (protect
  252.             (tackon @default-dest "WebTV")
  253.             "+s"
  254.         )
  255.  
  256.         (run (cat "Echo " @default-dest " >ENV:WebTV_LASTUSEDDIR NOLINE"))
  257.         (run (cat "Echo " @default-dest " >ENVARC:WebTV_LASTUSEDDIR NOLINE"))
  258.     )
  259. )
  260.  
  261. ; Optionally avoid adult cams in the installation and future auto updates
  262.  
  263. (if
  264.     (= @user-level 0)
  265.     (
  266.         (set #restore-novice-level 1)
  267.         (user 1)                        ; yes, I know this is evil
  268.     )
  269.     (set #restore-novice-level 0)
  270. )
  271.  
  272. (if
  273.     (askbool
  274.         (prompt "WebVision is distributed together with a list of camsites.  Some of these sites are only intended for adult audiences.  If you like, these sites can be left out of the installation.\n\nAdditionally, through the new automatic sitelist update feature (registered users only) you may get new sites that are only suitable for adult audiences. If you like, you can filter out such sites when using the update service.\n\nAvoid adult webcams?")
  275.         (help "The filter setting can be changed later inside the WebVision settings window if you wish.")
  276.         (default 1)
  277.     )
  278.  
  279.     (
  280.         (textfile
  281.             (dest "ENV:WebVision.settings")
  282.             (include "ENV:WebVision.settings")
  283.             (append "NoAdult: Yes\n")
  284.         )
  285.  
  286.         (textfile
  287.             (dest "ENVARC:WebVision.settings")
  288.             (include "ENVARC:WebVision.settings")
  289.             (append "NoAdult: Yes\n")
  290.         )
  291.  
  292.         (set #newsitefile "WebVision.sites")
  293.     )
  294.  
  295.     (set #newsitefile "WebVision_Adult.sites")
  296. )
  297.  
  298. (if
  299.     #restore-novice-level
  300.     (user 0)
  301. )
  302.  
  303. ; Check for prior existance of sitefile
  304.  
  305. (set #oldsitefile (tackon @default-dest "WebVision.sites"))
  306.  
  307. (if
  308.     (exists #oldsitefile)
  309.  
  310.     (set #sitefilechoice
  311.         (askchoice
  312.             (prompt "You have a web camera site configuration file called WebVision.sites already.")
  313.             (help "Overwriting should be safe if you haven't configured any cameras of your own. Appending may create duplicate entries.")
  314.             (choices "pOverwrite old with new file" "Append new file to old one" "Put old sites into \"Old sites\" group" "Skip copying new file")
  315.             (default 2)
  316.         )
  317.     )
  318.  
  319.     (set #sitefilechoice 0)
  320. )
  321.  
  322. ; Overwrite
  323.  
  324. (if 
  325.     (= #sitefilechoice 0)
  326.  
  327.     (copyfiles
  328.         (source #newsitefile)
  329.         (dest @default-dest)
  330.         (newname "WebVision.sites")
  331. ;        (optional force)
  332.     )
  333. )
  334.  
  335. ; Append
  336.  
  337. (if
  338.     (= #sitefilechoice 1)
  339.  
  340.     (textfile
  341.         (include #oldsitefile)
  342.         (include #newsitefile)
  343.         (dest #oldsitefile)
  344.     )
  345. )
  346.  
  347. ; Old sites into group
  348.  
  349. (if
  350.     (= #sitefilechoice 2)
  351.  
  352.     (textfile
  353.         (append "GroupClosed: Old sites\n")
  354.         (include #oldsitefile)
  355.         (append "GroupEnd\n")
  356.         (include #newsitefile)
  357.         (dest #oldsitefile)
  358.     )
  359. )
  360.  
  361. ; Exit
  362.  
  363. (exit #exitmsg)
  364.